The Internet, as well as other networks, has become more complicated with additional bandwidth requirements, a larger number of users, and increasingly elaborate applications. In order to handle these increased demands, new protocols and network data types have been developed. Network Processors (NPs), which are well known to those of ordinary skill in the art, are used to perform various tasks such as processing network packets, network data streams, and network objects to accomplish specific tasks.
The functions that the NP performs can be categorized into physical-layer functions, switching and fabric-control functions, packet-processing functions, and system-control functions. In some instances the packet-processing functions can be further subdivided into network-layer packet processing and higher-layer packet processing.
The physical-layer functions handle the actual signaling over the network media connections, such as an Ethernet port, an optical fiber connection, or a coaxial T3 connection. The NP is used to convert the data packets into signals which are transmitted over the physical media. The NPs often work according to a media access control and physical layer protocols such as Ethernet, Synchronous Optical Network (SONET), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), and the like.
The switching and fabric-control functions are performed by the NP direct traffic inside the NP. The functions are used to direct the data from the ingress port of the NP to an appropriate egress port of the NP and toward the correct network. The functions further include performing operations such as queuing the data in appropriate order or priority at these ports.
The packet-processing functions performed by the NP handle the processing of all network protocols. Thus, a packet containing instructions on allocating a stream for continuous guaranteed delivery is handled at this level.
System-control or host-processing functions performed by the NP include management of other components of the hardware unit, such as power management, peripheral device control, console port management, and the like.
NP processing typically includes other functions as well. A typical router application involves receiving packets, performing route table look-ups, performing packet classification, performing packet metering, performing congestion avoidance, performing packet transmit scheduling and finally performing packet transmittal. NPs need to provide sufficient processing power in order to run network applications efficiently and cost-effectively.
A network processor typically includes built-in devices such as 10/100, Gigabit Ethernet, and ATM interfaces. The NP can further include one or more Micro Engines (MEs), associated I/O interfaces and memory, a processor core and memory. In one of the operating modes of the NP, the ME is programmed to act as Gigabit Ethernet engine with Transmission Control Protocol (TCP) offload functions.
Flow control messages are used to control the transmission of data from an Ingress NP to a switch fabric as part of a network processing system. The flow control messages are typically passed from the switch fabric to an Egress NP and then from the Egress NP to the Ingress NP. Parity errors can occur at any place along the path from the switch fabric, through the Egress NP to the Ingress NP.